%   CLASS Core
% =========================================================================
%
% DESCRIPTION
%   Collector of settings to manage a useful parameters of goGPS
%   This singleton class collects multiple objects containing various
%   parameters
%
% EXAMPLE
%   settings = goGNSS();
%
% FOR A LIST OF CONSTANTs and METHODS use doc goGNSS


%--------------------------------------------------------------------------
%               ___ ___ ___
%     __ _ ___ / __| _ | __
%    / _` / _ \ (_ |  _|__ \
%    \__, \___/\___|_| |___/
%    |___/                    v 0.5.2 beta 1
%
%--------------------------------------------------------------------------
%  Copyright (C) 2009-2017 Mirko Reguzzoni, Eugenio Realini
%  Written by:       Gatti Andrea
%  Contributors:     Gatti Andrea, ...
%  A list of all the historical goGPS contributors is in CREDITS.nfo
%--------------------------------------------------------------------------
%
%    This program is free software: you can redistribute it and/or modify
%    it under the terms of the GNU General Public License as published by
%    the Free Software Foundation, either version 3 of the License, or
%    (at your option) any later version.
%
%    This program is distributed in the hope that it will be useful,
%    but WITHOUT ANY WARRANTY; without even the implied warranty of
%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%    GNU General Public License for more details.
%
%    You should have received a copy of the GNU General Public License
%    along with this program.  If not, see <http://www.gnu.org/licenses/>.
%
%--------------------------------------------------------------------------
% 01100111 01101111 01000111 01010000 01010011
%--------------------------------------------------------------------------

classdef Core < handle

    properties (Constant)
        GO_GPS_VERSION = '0.5.2 beta 1';
    end

    properties % Public Access
        log;
        state;
    end

    methods (Static)
        function this = Core()
            % Core object creator
            this.log = Logger.getInstance();
            this.state = Go_State.getCurrentSettings();
        end

        % Concrete implementation.  See Singleton superclass.
        function this = getInstance()
            % Get the persistent instance of the class
            persistent unique_instance_core__
            unique_instance_core__ = [];

            if isempty(unique_instance_core__)
                this = Core();
                unique_instance_core__ = this;
            else
                this = unique_instance_core__;
            end
        end


        function showTextHeader()
            this.log = Logger.getInstance();
            if this.log.getColorMode()
                cprintf([241 160 38]/255,'\n               ___ ___ ___\n     __ _ ___ / __| _ | __|\n    / _` / _ \\ (_ |  _|__ \\\n    \\__, \\___/\\___|_| |___/\n    |___/                    '); cprintf('text','v '); cprintf('text', Core.GO_GPS_VERSION); fprintf('\n');
                fprintf('\n--------------------------------------------------------------------------\n\n');
            else
                fprintf('\n               ___ ___ ___\n     __ _ ___ / __| _ | __|\n    / _` / _ \\ (_ |  _|__ \\\n    \\__, \\___/\\___|_| |___/\n    |___/                    v %s\n', Core.GO_GPS_VERSION);
                fprintf('\n');
                fprintf('--------------------------------------------------------------------------\n\n');
            end
        end

        function [logo, transparency] = getLogo()
            transparency = uint8([ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 223 223 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 191 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 159 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 239 255 255 255 255 255 255 255 255 255 255 239 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 223 255 255 255 255 255 255 255 255 255 255 255 255 255 255 223 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 191 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 191 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 143 255 255 255 255 255 255 255 255 255 255 175 175 255 255 255 255 255 255 255 255 255 255 143 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 239 255 255 255 255 255 255 255 255 255 223 64 0 0 64 223 255 255 255 255 255 255 255 255 255 239 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 207 255 255 255 255 255 255 255 255 255 239 112 0 0 0 0 0 0 112 239 255 255 255 255 255 255 255 255 255 207 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 175 255 255 255 255 255 255 255 255 255 255 143 16 0 0 0 0 0 0 0 0 16 143 255 255 255 255 255 255 255 255 255 255 175 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 16 128 255 255 255 255 255 255 255 255 255 255 191 32 0 0 0 0 0 0 0 0 0 0 0 0 32 191 255 255 255 255 255 255 255 255 255 255 128 16 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 96 223 255 255 255 255 255 255 255 255 255 223 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 223 255 255 255 255 255 255 255 255 255 223 96 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 64 191 255 255 255 255 255 255 255 255 255 239 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 239 255 255 255 255 255 255 255 255 255 191 64 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 16 159 255 255 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 159 255 255 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0;
                0 0 0 0 0 0 128 239 255 255 255 255 255 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 191 255 255 255 255 255 255 255 255 255 239 128 0 0 0 0 0 0;
                0 0 0 0 80 223 255 255 255 255 255 255 255 255 255 223 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 223 255 255 255 255 255 255 255 255 255 223 80 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 255 255 255 239 128 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 128 239 255 255 255 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 255 255 159 32 0 0 0 0 0 0 32 112 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 112 16 0 0 0 0 0 0 32 159 255 255 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 207 64 0 0 0 0 0 0 16 143 255 255 239 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 128 255 255 239 96 0 0 0 0 0 0 0 64 207 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 207 0 0 0 0 0 0 0 112 239 255 255 255 255 255 207 64 0 0 0 0 0 0 0 0 0 0 0 0 96 223 255 255 255 255 255 207 64 0 0 0 0 0 0 0 207 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 64 223 255 255 255 255 255 255 255 255 255 175 32 0 0 0 0 0 0 0 0 64 191 255 255 255 255 255 255 255 255 255 159 32 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 32 175 255 255 255 255 255 255 255 255 255 255 255 255 239 128 16 0 0 0 0 32 159 255 255 255 255 255 255 255 255 255 255 255 255 239 128 16 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 48 255 255 255 255 255 255 255 255 207 255 255 255 255 255 255 255 175 0 0 0 48 239 255 255 255 255 255 255 255 191 255 255 255 255 255 255 255 223 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 255 255 175 32 0 64 223 255 255 255 255 255 191 0 0 0 64 255 255 255 255 255 255 191 32 0 64 223 255 255 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 207 64 0 0 0 0 0 112 239 255 255 255 191 0 0 0 64 255 255 255 255 223 64 0 0 0 0 0 112 239 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 191 0 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 191 0 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 191 0 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 191 0 0 0 64 255 255 255 255 64 0 0 0 0 0 0 0 128 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 96 0 0 0 0 0 0 0 159 255 255 255 191 0 0 0 64 255 255 255 255 96 0 0 0 0 0 0 0 159 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 255 159 32 0 0 0 64 223 255 255 255 255 191 0 0 0 64 255 255 255 255 255 175 32 0 0 0 64 207 255 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 64 255 255 255 255 255 255 239 128 48 175 255 255 255 255 255 255 191 0 0 0 64 255 255 255 255 255 255 255 128 48 175 255 255 255 255 255 255 255 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 16 159 255 255 255 255 255 255 255 255 255 255 255 255 255 255 239 112 0 0 0 16 175 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 128 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 64 207 255 255 255 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 64 207 255 255 255 255 255 255 255 255 255 255 255 175 32 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 96 239 255 255 255 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 96 239 255 255 255 255 255 255 255 207 64 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 16 128 255 255 255 255 223 96 0 0 0 0 0 0 0 0 0 0 0 0 0 16 128 255 255 255 255 239 96 0 0 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 0 0 32 175 239 128 16 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 32 191 255 143 16 0 0 0 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 128 175 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 223 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 143 16 0 0 0 0 0 48 191 255 255 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 128 112 0 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 255 239 112 0 0 16 159 255 255 255 255 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 159 255 255 239 48 0 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 255 255 255 223 143 239 255 255 255 255 255 255 191 0 0 0 0 0 0 0 0 0 0 0 0 0 128 255 64 64 80 96 16 0 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 32 32 0 175 255 207 255 255 255 239 16 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 191 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 223 80 0 0 0 0 0 0 0 0 0 0 16 159 255 255 96 48 239 255 223 143 207 255 64 0 0 0 191 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 207 0 0 0 0 0 0 0 175 255 255 255 255 255 255 239 128 0 0 0 0 0 0 0 0 0 0 0 128 239 239 175 255 239 0 0 16 64 0 175 255 32 0 0 0 207 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 207 64 0 0 0 0 0 0 64 207 255 255 255 159 32 0 0 0 0 0 0 0 0 0 0 0 16 239 255 112 16 255 255 0 32 223 255 255 255 96 0 0 64 207 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 255 255 159 32 0 0 0 0 0 0 96 175 64 0 0 0 0 0 0 0 0 0 0 32 128 96 0 112 255 239 223 255 96 0 0 112 191 159 32 0 32 159 255 255 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 191 255 255 255 255 255 255 255 255 239 128 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 143 255 255 239 80 0 223 255 223 48 0 0 0 0 0 0 16 128 239 255 255 255 255 255 255 255 255 191 0 0 0 0;
                0 0 0 0 80 223 255 255 255 255 255 255 255 255 255 223 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 159 255 128 96 48 96 80 64 255 255 32 0 0 0 0 0 96 223 255 255 255 255 255 255 255 255 255 223 80 0 0 0 0;
                0 0 0 0 0 0 128 239 255 255 255 255 255 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 0 16 255 207 0 48 207 255 239 16 191 255 191 0 0 0 48 191 255 255 255 255 255 255 255 255 255 239 128 0 0 0 0 0 0;
                0 0 0 0 0 0 0 16 159 255 255 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0 0 0 32 255 239 16 64 207 191 255 112 32 175 32 0 16 159 255 255 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 64 191 255 255 255 255 255 255 255 255 255 239 128 0 0 0 0 0 0 0 0 0 223 255 159 0 16 207 255 64 0 0 0 128 239 255 255 255 255 255 255 255 255 255 191 64 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 96 223 255 255 255 255 255 255 255 255 255 223 80 0 0 0 0 0 0 0 80 255 255 207 239 255 96 0 0 80 223 255 255 255 255 255 255 255 255 255 223 96 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 16 128 255 255 255 255 255 255 255 255 255 255 191 32 0 0 0 0 0 0 80 223 255 175 64 0 32 191 255 255 255 255 255 255 255 255 255 255 128 16 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 175 255 255 255 255 255 255 255 255 255 255 143 16 0 0 0 0 0 0 0 0 16 143 255 255 255 255 255 255 255 255 255 255 175 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 207 255 255 255 255 255 255 255 255 255 239 112 0 0 0 0 0 0 112 239 255 255 255 255 255 255 255 255 255 207 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 239 255 255 255 255 255 255 255 255 255 223 64 0 0 64 223 255 255 255 255 255 255 255 255 255 239 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 143 255 255 255 255 255 255 255 255 255 255 175 175 255 255 255 255 255 255 255 255 255 255 143 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 191 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 191 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 223 255 255 255 255 255 255 255 255 255 255 255 255 255 255 223 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 239 255 255 255 255 255 255 255 255 255 255 239 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 159 255 255 255 255 255 255 255 255 159 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 191 255 255 255 255 191 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 223 223 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);

            logo = uint8(zeros(size(transparency,1), size(transparency,2), 3));
            logo(:,:,1) = uint8([ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 223 224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 250 251 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 213 217 220 223 225 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 245 247 249 250 252 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 206 209 213 216 219 223 225 228 0 0 0 0 0 0 0 0 0 0 0 0 239 241 243 245 246 248 250 251 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 195 198 202 205 209 212 215 219 222 225 228 230 0 0 0 0 0 0 0 0 233 235 237 239 241 243 244 246 248 250 252 253 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 180 184 188 191 194 198 201 205 208 211 215 218 221 225 228 230 232 0 0 0 0 228 229 231 233 235 237 239 240 242 244 246 248 249 251 253 254 255 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 174 177 180 184 187 190 194 197 200 204 207 211 214 217 221 224 228 230 0 0 0 224 226 227 229 231 233 235 236 238 240 242 244 245 247 249 251 253 254 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 171 173 176 180 183 186 190 193 197 0 205 207 210 213 217 220 223 227 0 0 0 223 224 225 227 229 231 233 234 237 0 241 242 243 245 247 249 250 252 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 167 169 172 176 179 182 187 0 0 0 0 0 207 209 213 216 219 223 0 0 0 220 221 223 225 227 229 231 0 0 0 0 0 242 243 245 247 248 250 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 163 165 168 172 175 177 0 0 0 0 0 0 0 206 209 212 215 219 0 0 0 218 219 221 223 225 226 0 0 0 0 0 0 0 241 243 244 246 248 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 159 161 164 167 171 173 0 0 0 0 0 0 0 202 205 208 211 215 0 0 0 216 217 219 221 223 224 0 0 0 0 0 0 0 239 240 242 244 246 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 155 157 160 163 167 169 0 0 0 0 0 0 0 198 201 204 207 211 0 0 0 214 215 217 219 220 222 0 0 0 0 0 0 0 237 238 240 242 244 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 151 153 156 159 163 165 0 0 0 0 0 0 0 194 197 200 203 207 0 0 0 212 213 215 216 218 220 0 0 0 0 0 0 0 235 236 238 240 242 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 147 149 152 155 159 161 0 0 0 0 0 0 0 189 193 196 199 203 0 0 0 210 211 213 214 216 217 0 0 0 0 0 0 0 232 234 236 238 239 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 143 145 148 151 155 158 161 163 0 0 0 178 182 185 189 192 195 198 0 0 0 208 209 210 212 214 216 217 218 0 0 0 226 228 230 232 234 236 237 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 139 141 144 147 151 154 157 161 163 166 171 174 178 181 185 188 191 194 0 0 0 205 206 208 210 212 214 215 217 218 220 223 224 226 228 230 232 233 235 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 136 137 140 143 147 150 153 157 160 164 167 170 174 177 181 184 187 191 0 0 0 204 205 206 208 210 211 213 215 217 219 220 222 224 226 228 229 231 233 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 138 140 143 146 149 153 156 160 163 166 170 173 176 181 183 0 0 0 0 0 0 205 206 208 209 211 213 215 217 218 220 222 224 225 227 230 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 140 142 145 149 152 156 159 162 166 169 173 0 0 0 0 0 0 0 0 0 0 206 207 209 211 213 214 216 218 220 222 224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 142 145 148 152 155 158 163 0 0 0 0 0 0 0 0 0 0 0 0 0 207 207 209 210 212 214 216 218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 145 147 152 154 0 0 0 0 0 232 0 0 0 0 0 0 0 0 0 0 208 209 210 212 214 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 223 228 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 214 218 222 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 162 164 0 0 0 0 0 195 199 204 209 213 217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 162 165 0 0 180 184 190 194 198 203 208 212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 157 162 166 170 175 180 184 189 193 198 202 206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 152 156 161 165 170 174 179 183 188 192 197 202 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 146 151 155 160 164 169 174 178 183 187 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 138 141 146 150 155 159 163 168 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 138 141 145 149 154 159 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 144 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;]);
            logo(:,:,2) = uint8([ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 148 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 143 145 147 148 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 139 141 143 144 146 148 149 151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 133 135 137 139 141 142 144 146 148 150 151 152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 127 129 131 133 135 137 138 140 142 144 146 147 149 151 152 153 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 124 125 127 129 131 133 134 136 138 140 142 143 145 147 149 151 152 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 122 123 125 127 129 131 132 135 0 139 140 141 143 145 147 148 150 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 119 121 123 125 127 129 0 0 0 0 0 140 141 143 145 146 148 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 116 117 119 121 123 124 0 0 0 0 0 0 0 139 141 142 144 146 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 115 117 119 121 122 0 0 0 0 0 0 0 137 138 140 142 144 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 113 115 117 118 120 0 0 0 0 0 0 0 135 136 138 140 142 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 111 113 114 116 118 0 0 0 0 0 0 0 133 134 136 138 140 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108 109 111 112 114 115 0 0 0 0 0 0 0 130 132 134 136 137 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 107 108 110 112 114 115 116 0 0 0 124 126 128 130 132 134 135 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 104 106 108 110 112 113 115 116 118 121 122 124 126 128 130 131 133 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 103 104 106 108 109 111 113 115 117 118 120 122 124 126 127 129 131 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 104 106 107 109 111 113 115 116 118 120 122 123 125 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 105 107 109 111 112 114 116 118 120 122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 105 107 108 110 112 114 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 107 108 110 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
                ]);
        end
    end

    % =========================================================================
    %  CONSTELLATION MANAGEMENT
    % =========================================================================

    methods % Public Access
        function [ cc ] = initConstellation(obj, GPS_flag, GLO_flag, GAL_flag, BDS_flag, QZS_flag, SBS_flag)
            % Multi-constellation set-up.
            %
            % SYNTAX:
            %   cc = initConstellation(GPS_flag, GLO_flag, GAL_flag, BDS_flag, QZS_flag, SBS_flag);
            %   cc = initConstellation([GPS_flag, GLO_flag, GAL_flag, BDS_flag, QZS_flag, SBS_flag]);
            %
            % INPUT:
            %   single logical array whose elements are:
            %   GPS_flag = boolean flag for enabling/disabling GPS usage
            %   GLO_flag = boolean flag for enabling/disabling GLONASS usage
            %   GAL_flag = boolean flag for enabling/disabling Galileo usage
            %   BDS_flag = boolean flag for enabling/disabling BeiDou usage
            %   QZS_flag = boolean flag for enabling/disabling QZSS usage
            %   SBS_flag = boolean flag for enabling/disabling SBAS usage (for ranging)
            %
            % OUTPUT:
            %   the results is stored within the object referenced by "cc"
            switch nargin
                case 2,  enabled_ss = GPS_flag;
                case 6,  enabled_ss = logical([GPS_flag, GLO_flag, GAL_flag, BDS_flag, QZS_flag, 0]);
                case 7,  enabled_ss = logical([GPS_flag, GLO_flag, GAL_flag, BDS_flag, QZS_flag, SBS_flag]);
                otherwise, error(['Initialization of Constellation_Collector failed: ' 10 '   invalid number of parameters in the constructor call']);
            end

            obj.cc = Costellation_Collector(enabled_ss);

            cc = obj.cc;
        end

    end

    methods % Public Access (Legacy support)
    end

end
